Field of the Disclosure
The present disclosure relates to a main memory capable of speeding up a hardware accelerator and saving memory space.
Description of the Related Art
In computing, hardware acceleration refers to use of hardware capable of performing some functionality faster than software running on a central processing unit (CPU). Examples of hardware acceleration include blitting acceleration functionality in a graphics processing unit (GPU) and functions for complex functionality in a CPU. In general, processors are executed continuously and functions are executed one by one. Various technologies are used to improve performance and hardware acceleration is one such technology.
A hardware accelerator performs hardware acceleration, and typically includes an Computing unit and a memory space that are separate from each other. When an accelerator is activated, data to be used in the accelerator is transferred from a main memory to a memory inside the accelerator by direct memory access (DMA). In addition, when operation of the accelerator is completed, obtained data is transferred from the memory inside the accelerator to the main memory by DMA. In this case, when the amount of data to be transferred is large, overhead for data transfer becomes too large, which may be inefficient in terms of speed.
In addition, an operating system allocates an independent virtual memory space for each process. This allows the memory space to be used as if it were a contiguous space, even if physical addresses are not contiguous. When a processor requests a virtual address, a translation look-ahead buffer (TLB) translates the address into a physical address and memory access is performed. In this case, an accelerator should be activated using the physical address because the accelerator cannot access the TLB.